CriteriaBuilder类是JPA Criteria API中最重要的类之一,它用于构建查询,排序和复杂条件。
CriteriaBuilder类中包含了众多方法,我们将逐一介绍这些方法并提供详细的代码说明。
1. createCriteriaQuery():创建CriteriaQuery对象,表示一个查询。
```java
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery ``` 2. createTupleQuery():创建TupleQuery对象,用于返回结果集的Tuple形式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery ``` 3. createQuery():创建Query对象,用来执行查询。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQuery Query ``` 4. createPredicate():创建Predicate对象,表示一个条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.equal(root.get("name") "John"); ``` 5. conjunction():创建一个AND组合的Predicate。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.conjunction(); ``` 6. disjunction():创建一个OR组合的Predicate。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.disjunction(); ``` 7. greaterThan():创建一个大于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.greaterThan(root.get("age") 30); ``` 8. greaterThanOrEqualTo():创建一个大于等于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.greaterThanOrEqualTo(root.get("age") 30); ``` 9. lessThan():创建一个小于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.lessThan(root.get("age") 30); ``` 10. lessThanOrEqualTo():创建一个小于等于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.lessThanOrEqualTo(root.get("age") 30); ``` 11. equal():创建一个等于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.equal(root.get("name") "John"); ``` 12. notEqual():创建一个不等于的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.notEqual(root.get("name") "John"); ``` 13. isNull():创建一个为NULL的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.isNull(root.get("name")); ``` 14. isNotNull():创建一个不为NULL的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.isNotNull(root.get("name")); ``` 15. like():创建一个LIKE的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.like(root.get("name") "%John%"); ``` 16. or():创建一个OR条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.or(pred1 pred2); ``` 17. and():创建一个AND条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.and(pred1 pred2); ``` 18. between():创建一个BETWEEN的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.between(root.get("age") 20 30); ``` 19. exists():创建一个EXISTS的条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Subquery Root sq.select(cb.count(subRoot)); sq.where(cb.equal(subRoot.get("name") root.get("department"))); Predicate condition = cb.exists(sq); ``` 20. not():创建一个NOT条件表达式。 ```java CriteriaBuilder cb = entityManager.getCriteriaBuilder(); Predicate condition = cb.not(pred); ``` 以上就是CriteriaBuilder类中的一些常用方法,这些方法可以帮助我们构建各种复杂的查询条件,使得JPA Criteria API更加强大和灵活。通过这些方法的组合和嵌套,我们可以实现几乎任何类型的查询需求。
咨询微信客服
0516-6662 4183
立即获取方案或咨询top